package com.future;

import com.future.util.TreeNode;

/**
 * 给定一个二叉树，找出其最大深度。
 * <p>
 * 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
 * <p>
 * 说明: 叶子节点是指没有子节点的节点。
 */
public class Solution_maxDepth_104 {

    public static void main(String[] args) {
        TreeNode L = new TreeNode(3,
                new TreeNode(4, new TreeNode(99, null, new TreeNode(100)), null),
                new TreeNode(5));
        TreeNode R = new TreeNode(2);
        TreeNode head = new TreeNode(1, L, R);
        System.out.println(maxDepth(head));
    }

    public static int maxDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }
        int s1 = maxDepth(root.left) + 1;
        int s2 = maxDepth(root.right) + 1;
        return Math.max(s1, s2);
    }
}
